/**
 * Copyright (c) 2020 Contributors to the Eclipse Foundation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * https://www.eclipse.org/legal/epl-2.0
 *
 * SPDX-License-Identifier: EPL-2.0
 */
package org.eclipse.vorto.codegen.hono.python

import org.eclipse.vorto.core.api.model.informationmodel.InformationModel
import org.eclipse.vorto.plugin.generator.InvocationContext
import org.eclipse.vorto.plugin.generator.utils.IFileTemplate

class PythonImTemplate implements IFileTemplate<InformationModel> {
	
	override getFileName(InformationModel model) {
		return model.name + ".py";
	}
	
	override getPath(InformationModel model) {
		return "model/infomodel";
	}
	
	override getContent(InformationModel model, InvocationContext context) {
		'''
		# «model.namespace».«model.name» generated by Vorto Python MQTT Generator
		
		«FOR fb : model.properties»
		import model.functionblock.«fb.type.name» as «fb.name»
		«ENDFOR»
		
		class «model.name»(object):
		    def __init__(self):
		        «FOR fb : model.properties»
		        	self.«fb.name» = «fb.name».«fb.type.name»()
		        «ENDFOR»				    
		'''
	}
	
}

